5
תגובות

שאלה OOP

פתח questioner ,
האם נהוג לצור מחלקה ליצירת משתמשים חדשים, ומחלקה לטעינת משתמשים קיימים, או להשתמש באותה מחלקה?

5 תשובות

avatar ענה intval ב 29 ליוני 2012 #

מה שנוח לך.
לי בעבר הייתה פעולה "צור משתמש חדש" בתור פעולה סטטית של המחלקה משתמש
שהייתה מחזירה מופע של משתמש חדש.

אתה יכול הקונסטרקטור של המחלקה להעביר לה פרמטר id של המשתמש ואז לטעון את המשתמש
או לא להעביר לה שום דבר ואז היא תיצור משתמש חדש בעצמה

avatar ענה iiddaannyy ב 29 ליוני 2012 #

באופן אישי אני מעדיף את השיטה הראשונה ^, פעולה סטטית של יצירת משתמש חדש שמחזירה מופע חדש של המחלקה.

avatar ענה questioner ב 29 ליוני 2012 #

מה היתרון של זה? זה נראה לי סתם יותר מסובך.

avatar ענה iiddaannyy ב 29 ליוני 2012 #

אני לא חושב.
זה סתם לדחוף תנאי ולהתחיל לשחק עם הפרמטרים (אתה הרי אמור לקבל כפרמטרים את הפרטים של המשתמש החדש).
במקום זה, שים בנאי פשוט ופעולה סטטית בשם create שתיצור משתמש ותחזיר מופע של משתמש.

avatar ענה iiddaannyy ב 29 ליוני 2012 #

רק להראות כמה זה פשוט:

class user {
    private $id;
    public function __construct($id) {
        $this->id = $id;
    }
    public static function create($username, $password, ...) {
        $mysqli = new mysqli...
        $mysqli->query("...");
        return new self($mysqli->inser_id); // or new user($mysqli->insert_id);
    }
}
$user = user::create('iiddaannyy', 'mypass'...);